gusucode.com > VC++ 汽配销售管理系统(Access)源码程序 > VC++ 汽配销售管理系统(Access)源码程序/源码/DUnit.cpp
//Download by http://www.NewXing.com // DUnit.cpp : implementation file // #include "stdafx.h" #include "qpglxt.h" #include "DUnit.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CDUnit dialog CDUnit::CDUnit(CWnd* pParent /*=NULL*/) : CDialog(CDUnit::IDD, pParent) { //{{AFX_DATA_INIT(CDUnit) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT } void CDUnit::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDUnit) DDX_Control(pDX, IDC_STAUNIT, m_StaUnit); DDX_Control(pDX, IDC_UNIT_LIST, m_List); DDX_Control(pDX, IDC_UNIT_EDTUNIT, m_EdtUnit); DDX_Control(pDX, IDC_UNIT_EDTID, m_EdtID); DDX_Control(pDX, IDC_SPXX_BUTUNDO, m_ButUndo); DDX_Control(pDX, IDC_SPXX_BUTSAVE, m_ButSave); DDX_Control(pDX, IDC_SPXX_BUTEXIT, m_ButExit); DDX_Control(pDX, IDC_SPXX_BUTDELE, m_ButDele); DDX_Control(pDX, IDC_SPXX_BUTCHANGE, m_ButChange); DDX_Control(pDX, IDC_SPXX_BUTADD, m_ButAdd); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CDUnit, CDialog) //{{AFX_MSG_MAP(CDUnit) ON_BN_CLICKED(IDC_SPXX_BUTADD, OnSpxxButadd) ON_BN_CLICKED(IDC_SPXX_BUTCHANGE, OnSpxxButchange) ON_BN_CLICKED(IDC_SPXX_BUTDELE, OnSpxxButdele) ON_BN_CLICKED(IDC_SPXX_BUTSAVE, OnSpxxButsave) ON_BN_CLICKED(IDC_SPXX_BUTUNDO, OnSpxxButundo) ON_BN_CLICKED(IDC_SPXX_BUTEXIT, OnSpxxButexit) ON_LBN_SELCHANGE(IDC_UNIT_LIST, OnSelchangeUnitList) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDUnit message handlers void CDUnit::OnOK() { // TODO: Add extra validation here // CDialog::OnOK(); } BOOL CDUnit::OnInitDialog() { CDialog::OnInitDialog(); RxRecordset rst; rst.Open(m_sDataBaseName); m_sUnitTit=m_sUnitTit+":"; this->m_StaUnit.SetWindowText(m_sUnitTit); this->m_List.SetDatabase(rst,m_sField); this->SetWindowText(m_sCaption); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CDUnit::Clear() { m_EdtUnit.SetWindowText(""); m_EdtID.SetWindowText(""); } void CDUnit::Display(CString sUnit) { RxRecordset Drxt; CString sSQL; if(sUnit.IsEmpty()) return; sSQL.Format("SELECT * FROM %s WHERE %s ='%s'",m_sDataBaseName,m_sField,sUnit); Drxt.Open(sSQL,adCmdText); CString sID; sID=Drxt.GetFieldValue("编号"); sUnit=Drxt.GetFieldValue(m_sField); m_EdtUnit.SetWindowText(sUnit); m_EdtID.SetWindowText(sID); } void CDUnit::Enabled(bool bEnabled) { m_EdtUnit.EnableWindow(bEnabled); m_List.EnableWindow(!bEnabled); m_ButUndo.EnableWindow(bEnabled); m_ButSave.EnableWindow(bEnabled); m_ButExit.EnableWindow(!bEnabled); m_ButDele.EnableWindow(!bEnabled); m_ButChange.EnableWindow(!bEnabled); m_ButAdd.EnableWindow(!bEnabled); } void CDUnit::OnSpxxButadd() { AddOrChange=1; CString sNewID; sNewID=ado.AutoNumber(m_sDataBaseName,"编号","",1); this->Clear(); m_EdtID.SetWindowText(sNewID); this->Enabled(true); this->m_EdtUnit.SetFocus(); } void CDUnit::OnSpxxButchange() { AddOrChange=2; this->Enabled(true); this->m_EdtUnit.SetFocus(); } void CDUnit::OnSpxxButdele() { if(MessageBox("确定要删除记录吗?"," 系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=1) return; CString cID,sSQL; this->m_EdtID.GetWindowText(cID); sSQL.Format("DELETE FROM %s WHERE 编号=%s",m_sDataBaseName,cID); bool isUsing=rst.Open(sSQL,adCmdText); if(isUsing==false) MessageBox("删除记录失败,一个或多个数据表使用了此条记录!","系统提示",MB_OK|MB_ICONSTOP); this->UpdateWindow(); m_List.Refresh(m_sField); } void CDUnit::OnSpxxButsave() { if(MessageBox("确定要保存记录吗?"," 系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=1) return; CString sSQL,sID,sUnit; m_EdtID.GetWindowText(sID); m_EdtUnit.GetWindowText(sUnit); CString stext; for(int i=0;i<m_List.GetCount();i++) { m_List.GetText(i,stext); if(stext==sUnit) { MessageBox("您输入的计量单位已经存在,请确认后重新输入!","系统提示",MB_OK|MB_ICONSTOP); m_EdtUnit.SetFocus(); return; } } if(this->AddOrChange==1)//添加 sSQL.Format("INSERT INTO %s VALUES(%s,'%s')",m_sDataBaseName,sID,sUnit); else//修改 sSQL.Format("UPDATE %s SET %s='%s' WHERE 编号=%s",m_sDataBaseName,m_sField,sUnit,sID); rst.Open(sSQL,adCmdText); this->Enabled(false); this->AddOrChange=0; m_List.Refresh(m_sField); m_ButAdd.SetFocus(); } void CDUnit::OnSpxxButundo() { if(MessageBox("确定要撤消操作吗?"," 系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=1) return; this->Enabled(false); this->Clear(); this->Display(m_sText); } void CDUnit::OnSpxxButexit() { this->OnCancel(); } void CDUnit::OnSelchangeUnitList() { CString sText; m_List.GetText(m_List.GetCurSel(),sText); this->Display(sText); m_sText=sText; } void CDUnit::SetDataBase(CString sDataBaseName,CString sField,CString sUnitTit) { m_sDataBaseName=sDataBaseName; m_sField=sField; m_sUnitTit=sUnitTit; } void CDUnit::SetCaption(CString sCaption) { m_sCaption=sCaption; }